#include <iostream>
using namespace std;

class A {
  public:
    virtual void Show() const { cout << "A" << endl; }
    virtual ~A();
};

class B : public A {
  public:
    void Show() const override;
};

A::~A() {}

void B::Show() const { cout << "B" << endl; }

int main() {
    A *p = new B;
    p->Show();
    delete p;

    return 0;
}
